<?php
#+------------------------------------------------------------------
#| 我曾七次鄙视自己的灵魂:
#| 第一次,当它本可进取时，却故作谦卑；
#| 第二次,当它空虚时，用爱欲来填充；
#| 第三次,在困难和容易之间，它选择了容易；
#| 第四次,它犯了错，却借由别人也会犯错来宽慰自己；
#| 第五次,它自由软弱，却把它认为是生命的坚韧；
#| 第六次,当它鄙夷一张丑恶的嘴脸时，却不知那正是自己面具中的一副；
#| 第七次,它侧身于生活的污泥中虽不甘心，却又畏首畏尾。
#+------------------------------------------------------------------
#| Author:Janmas Cromwell <janmas-cromwell@outlook.com>
#+------------------------------------------------------------------
namespace app\common\lib\queue;

use app\common\lib\RedisManage;
use app\common\model\ShortUrlLog;
use think\queue\Job;

/**
 * 短网址过期队列
 */
class OverdueShorturl
{
    public function fire(Job $job, $model)
    {

        $shortCode = $model['short_code'];

        echo "延时队列开始执行，编号：" . $shortCode . PHP_EOL;
        $redis = RedisManage::instance()->getRedis();
        $redis->select(1);
        if ($redis->exists($shortCode)) {
            $redis->del($shortCode);
        }
        $update = ['status' => ShortUrlLog::STATUS_OVERDUE, 'id' => $model['id']];
        if (ShortUrlLog::update($update)) {
            echo "编号" . $shortCode . "任务圆满完成" . PHP_EOL;
            $job->delete();
        } else {
            echo "编号" . $shortCode . "任务失败，重新发布，立即执行" . PHP_EOL;
            $job->release(0);
        }
    }

    public function failed($data)
    {
        #TODO:给开发者发邮件 邮件类 待构建
    }
}
